widget: Reset controllers when going numb
authorMatthias Clasen <mclasen@redhat.com>
Thu, 2 May 2019 19:12:29 +0000 (19:12 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 2 May 2019 19:53:30 +0000 (15:53 -0400)
Reset event controllers when their
widget is going insensitive. This is
the expected behavior.

gtk/gtkwidget.c

index 3ae53fdb090b663212263a1cf94ef93d12f4c044..af0b48c8c6a643699daeef21bfc99b562622a8b6 100644 (file)
@@ -6363,6 +6363,7 @@ gtk_widget_set_sensitive (GtkWidget *widget,
                          gboolean   sensitive)
 {
   GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
+  GList *l;
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
 
@@ -6373,6 +6374,13 @@ gtk_widget_set_sensitive (GtkWidget *widget,
 
   priv->sensitive = sensitive;
 
+  for (l = priv->event_controllers; l; l = l->next)
+    {
+      GtkEventController *controller = l->data;
+
+      gtk_event_controller_reset (controller);
+    }
+
   if (priv->parent == NULL
       || gtk_widget_is_sensitive (priv->parent))
     {